/**
 * 封装http 请求方法
 */
console.log('版本', __wxConfig.envVersion)
var apiUrl = null; 
switch (__wxConfig.envVersion){
  case 'develop': apiUrl = "http://dev.zbycorp.com:18888";break;   // 测试版环境域名
  case 'trial': apiUrl = "http://dev.zbycorp.com:18888"; break;    // 体验版环境
  case 'release': apiUrl = "https://erp.zbycorp.com:18888"; break; // 线上环境
  default: apiUrl = "http://dev.zbycorp.com:18888"; break;
}
apiUrl = "http://dev.zbycorp.com:18888"
const tokenKey = 'token';
const http = (params) => {
  //返回promise 对象
  return new Promise((resolve, reject) => {
    wx.getStorage({
      key: tokenKey,
      success: function(resp) {
        wx.request({
          url: apiUrl + params.url, //服务器url+参数中携带的接口具体地址
          data: params.data, //请求参数
          header: params.header || {
            "Content-Type": "application/json;utf-8", //设置后端需要的常用的格式就好，特殊情况调用的时候单独设置
            'Authorization': 'Bearer ' + resp.data
          },
          method: params.method || 'POST', //默认为GET,可以不写，如常用请求格式为POST，可以设置POST为默认请求方式
          dataType: params.dataType, //返回的数据格式,默认为JSON，特殊格式可以在调用的时候传入参数
          responseType: params.responseType, //响应的数据类型
          success: function(res) {
            //接口访问正常返回数据
            if (res.statusCode == 200) {
              if (res.data.status == 401) {
                wx.showModal({
                  title: '你已被登出，可以取消继续留在该页面，或者重新登录', //提示文字
                  icon: 'none', //图标，支持"success"、"loading"  
                  cancelText: "取消",
                  confirmText: "重新登录",
                  success: function() {
                    wx.navigateTo({
                      url: '/pages/login/login',
                    })
                  }, //接口调用成功
                  fail: function() {

                  }, //接口调用失败的回调函数  
                })
              } else if (res.data.status == 500){
                wx.showToast({
                  title: res.data.msg,
                  icon: 'none',
                  duration: 3000
                })
              }else {
                resolve(res.data)
              }
            } else {
            }
          },
          fail: function(e) {
            reject(e)
          }
        })
      },
      fail: function(error) {
        wx.showToast({
          icon: 'none',
          title: '获取token失败，请重新登录'
        })
        setTimeout(function() {
          wx.navigateTo({
            url: '/pages/login/login',
          })
        }, 1000)
        console.log('获取token失败', error);
      }
    });
  })
}
const http2 = (params) => {
  //返回promise 对象
  return new Promise((resolve, reject) => {
    wx.request({
      url: apiUrl + params.url, //服务器url+参数中携带的接口具体地址
      data: params.data, //请求参数
      header: params.header || {
        "Content-Type": "application/json;utf-8", //设置后端需要的常用的格式就好，特殊情况调用的时候单独设置
      },
      method: params.method || 'POST', //默认为GET,可以不写，如常用请求格式为POST，可以设置POST为默认请求方式
      dataType: params.dataType, //返回的数据格式,默认为JSON，特殊格式可以在调用的时候传入参数
      responseType: params.responseType, //响应的数据类型
      success: function(res) {
        //接口访问正常返回数据
        if (res.statusCode == 200) {
          if (res.data.status == 401) {
            wx.showModal({
              title: '你已被登出，可以取消继续留在该页面，或者重新登录', //提示文字
              icon: 'none', //图标，支持"success"、"loading"  
              cancelText: "取消",
              confirmText: "重新登录",
              success: function() {
                wx.navigateTo({
                  url: '/pages/login/login',
                })
              },
              fail: function() {

              },
            })
          } else if (res.data.status && res.data.status !== 0) {
            wx.showToast({
              icon: 'none',
              title: res.data.msg
            })
          } else {

            resolve(res.data)
          }
        } else {

        }
      },
      fail: function(e) {
        reject(e)
      }
    })
  })
}
module.exports = {
  http: http,
  http2: http2
}